package br.eng.eliseu.gwt.gestaoWeb.server.command.perfil;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Query;

import br.eng.eliseu.gwt.gestaoWeb.model.pessoa.Pessoa;
import br.eng.eliseu.gwt.gestaoWeb.model.pessoa.PessoaEndereco;
import br.eng.eliseu.gwt.gestaoWeb.server.command.BaseCommand;
import br.eng.eliseu.gwt.gestaoWeb.shared.ServiceException;

import com.google.inject.persist.Transactional;

public class PerfilUsuarioExcluiCommand extends BaseCommand<Void>{

	private static final long serialVersionUID = -1303004859164694319L;

	
	private Pessoa pessoa;
	private List<PessoaEndereco> pessoaEndereceList = new ArrayList<PessoaEndereco>();
	
	@Override
	@Transactional
	public Void call() throws ServiceException {

		Query q = getEntityManager().createNamedQuery("pessoaEndereco.deleteEnderecoNotIn");
//		Query q = getEntityManager().createQuery("delete from PessoaEndereco o where o.pessoa = :pessoa and o not in (:lista)");
		q.setParameter("pessoa", getPessoa());
		q.setParameter("lista", getPessoaEndereceList());
		q.executeUpdate();

		return null;
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public List<PessoaEndereco> getPessoaEndereceList() {
		return pessoaEndereceList;
	}

	public void setPessoaEndereceList(List<PessoaEndereco> pessoaEndereceList) {
		this.pessoaEndereceList = pessoaEndereceList;
	}

}
